const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');

console.log('开始构建 APK...');

try {
  // 检查 Android 目录是否存在
  const androidDir = path.join(__dirname, 'android');
  if (!fs.existsSync(androidDir)) {
    console.log('Android 目录不存在，正在生成...');
    execSync('npx expo prebuild --platform android', { stdio: 'inherit' });
  }

  // 尝试使用 Gradle 构建
  console.log('使用 Gradle 构建 APK...');
  process.chdir(androidDir);
  
  try {
    // Windows 环境使用 gradlew.bat
    execSync('gradlew.bat assembleRelease', { stdio: 'inherit' });
    console.log('APK 构建成功！');
    
    // 查找生成的 APK 文件
    const apkPath = path.join(androidDir, 'app', 'build', 'outputs', 'apk', 'release');
    if (fs.existsSync(apkPath)) {
      const files = fs.readdirSync(apkPath);
      const apkFiles = files.filter(file => file.endsWith('.apk'));
      if (apkFiles.length > 0) {
        console.log(`APK 文件生成在: ${path.join(apkPath, apkFiles[0])}`);
      }
    }
  } catch (gradleError) {
    console.log('Gradle 构建失败，尝试使用 React Native CLI...');
    process.chdir(__dirname);
    execSync('npx react-native run-android --mode=release', { stdio: 'inherit' });
  }

} catch (error) {
  console.error('构建失败:', error.message);
  console.log('请检查网络连接和依赖安装');
  process.exit(1);
}